using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace Negocio.Controladora
{
    // Clase Controladora
    public class ActualizarVentaServiciosAdicionales
    {
        #region Metodos publicos

        // Devuelve la lista de ventas de servicios adicionales
        public DataTable ListaVentaServiciosAdicionales(int codigoCliente, String fechaVtaInicio, String fechaVtaFin,
                                                        String fechaEvtoInicio, String fechaEvtoFin, String estadoVta)
        {
            try
            {
                Negocio.VentaServiciosAdicionales bcVentaServAdic = new Negocio.VentaServiciosAdicionales();
                return bcVentaServAdic.listaVentaServiciosAdicionales(codigoCliente, fechaVtaInicio, fechaVtaFin,
                                                                      fechaEvtoInicio, fechaEvtoFin, estadoVta);
            }
            catch (Exception ex)
            {
                throw new Exception("ListaVentaServiciosAdicionales() - " + ex.Message);
            }
        }

        public DataTable ListaTipoServicioAdicional()
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.ListaTipoServicioAdicional();
            }
            catch (Exception ex)
            {
                throw new Exception("ListaTipoServicioAdicional() - " + ex.Message);
            }
        }

        public DataTable ListaTipoEvento()
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.ListaTipoEvento();
            }
            catch (Exception ex)
            {
                throw new Exception("ListaTipoEvento() - " + ex.Message);
            }
        }

        public DataTable ListaPaquete()
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.ListaPaquete();
            }
            catch (Exception ex)
            {
                throw new Exception("ListaPaquete() - " + ex.Message);
            }
        }

        public DataTable ListaSala()
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.ListaSala();
            }
            catch (Exception ex)
            {
                throw new Exception("ListaSala() - " + ex.Message);
            }
        }

        public DataTable MontoPorPaquete(int codigoPaquete)
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.montoPorPaquete(codigoPaquete);
            }
            catch (Exception ex)
            {
                throw new Exception("MontoPorPaquete() - " + ex.Message);
            }
        }
        public DataTable ListaServicioExtra()
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.ListaServicioExtra();
            }
            catch (Exception ex)
            {
                throw new Exception("ListaServicioExtra() - " + ex.Message);
            }
        }

        public DataTable MontoPorServicio(int codigoServicio)
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.MontoPorServicio(codigoServicio);
            }
            catch (Exception ex)
            {
                throw new Exception("MontoPorServicio() - " + ex.Message);
            }
        }

        public DataTable CodigoServicio(string nombreServicio)
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.CodigoServicio(nombreServicio);
            }
            catch (Exception ex)
            {
                throw new Exception("CodigoServicio() - " + ex.Message);
            }
        }


        public DataTable InsertarVenta(string fechaVenta, string personaContacto, decimal subTotalVenta, decimal impuestoVenta,
            decimal totalTotalVenta, string estado, int codigoVendedor, int codigoCliente, int codigoPromocion, int tipoVenta,
            int tipoPago, int tipoTarjetaCredito, string numeroTarjetaCredito, int codProgramaFidelizacion, decimal montoPromocion,
            decimal montoDescuento)
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.InsertaVenta(fechaVenta, personaContacto, subTotalVenta, impuestoVenta, totalTotalVenta,
                                            estado, codigoVendedor, codigoCliente, codigoPromocion, tipoVenta, tipoPago,
                                            tipoTarjetaCredito, numeroTarjetaCredito, codProgramaFidelizacion,
                                            montoPromocion, montoDescuento);
            }
            catch (Exception ex)
            {
                throw new Exception("InsertarVenta() - " + ex.Message);
            }
        }

        public DataTable InsertaVtaServAdicionales(string fechaEvento, string horaInicioEvento, string horaFinEvento, int capacidadMaxima, int cantidadPersonas, int cantidadMesas,
                                             string descripcionGeneral, string descripcionMenu, int montoSinIGV, int codigoSala, int codigoTipoEvento, int codigoVenta,
                                             int paqueteID, int tipoServicioAdicional, int montoConIGV)
        {
            try
            {
                Negocio.VentaServiciosAdicionales bcVenta = new Negocio.VentaServiciosAdicionales();
                return bcVenta.insertaVtaServAdicionales(fechaEvento, horaInicioEvento, horaFinEvento, capacidadMaxima, cantidadPersonas, cantidadMesas,
                                                         descripcionGeneral, descripcionMenu, montoSinIGV, codigoSala, codigoTipoEvento, codigoVenta,
                                                         paqueteID, tipoServicioAdicional, montoConIGV);
            }
            catch (Exception ex)
            {
                throw new Exception("InsertaVtaServAdicionales() - " + ex.Message);
            }
        }

        public DataTable InsertaVtaServExtras(string item, decimal montoServicioSinIGV, string descripcionAdicional,
            int codigoVenta, int codigoServicioExtra, int cantidadServicioExtra, decimal montoServicioConIGV)
        {
            try
            {
                Negocio.VentaServiciosAdicionales bcVenta = new Negocio.VentaServiciosAdicionales();
                return bcVenta.insertaVtaServExtras(item, montoServicioSinIGV, descripcionAdicional, codigoVenta, 
                    codigoServicioExtra, cantidadServicioExtra, montoServicioConIGV);
            }
            catch (Exception ex)
            {
                throw new Exception("InsertaVtaServExtras() - " + ex.Message);
            }
        }

        #endregion
    }
}
